<?php

/**
 * presupuesto actions.
 *
 * @package    mediatica
 * @subpackage presupuesto
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class presupuestoActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    $servicioCliente= new clienteClass();
    $servicioProducto= new productoClass();
    $servicioCampana= new campanaClass();
  

    $criteriaCliente = $servicioCliente->listadoClientes("","","",1);
    $this->listaClientes = ClientePeer::doSelect($criteriaCliente);

    $servicioProveedores    = new proveedorClass();
    /* obtengo el listado de proveedores --- 1 = activo */
    $this->listaProveedores = $servicioProveedores->listadoGeneralProveedores(1);
    

  }
  
  public function executeListPresupuesto(sfWebRequest $request)
  {
      $servicioPresupuesto= new presupuestoClass();
      $listaPresupuestos=$servicioPresupuesto->listadoPresupuestos();
      $this->listaPresupuestos=$listaPresupuestos;
  }
  
  public function executeViewPresupuesto(sfWebRequest $request)
  {
      $servicioPresupuesto= new presupuestoClass();
      $idPresupuesto=$request->getParameter("idPresupuesto");
      $respuesta= $servicioPresupuesto->obtenerPresupuestoxNumero($idPresupuesto);
      if($respuesta['success'])
      {
           $presupuesto = $respuesta['objecto'];
           $servicioCliente = new clienteClass();
           $criteriaCliente = $servicioCliente->listadoClientes("","","",1);
           $this->listaClientes = ClientePeer::doSelect($criteriaCliente);
           $idCliente= $presupuesto->getClienteId();
           
           $criteria  =  new Criteria();
           $criteria->add(ProductoPeer::CLIENTE_ID,$idCliente);
           $criteria->add(ProductoPeer::ESTADO,1);
           $listaProductos = ProductoPeer::doSelect($criteria);
           $this->lista = $listaProductos;

           $idProducto=$presupuesto->getProductoId();
           $criteria= new Criteria();
           $criteria->add(CampanaPeer::ID_PRODUCTO,$idProducto);
           $criteria->add(CampanaPeer::ESTADO,1);
           $criteria->add(CampanaPeer::FECHA2,date('Y-m-d'),Criteria::GREATER_EQUAL);
           $listarCampanas=CampanaPeer::doSelect($criteria);
           $this->listacampana= $listarCampanas;
           $this->presupuesto=$presupuesto;
           return sfView::SUCCESS;           
      }
  }
  
    public function executeGrabarPresupuesto(sfWebRequest $request)
    {
        
       // $this->getUser()->setAttribute('s_detalleFormatoPublicitario', null);
        $this->forward404Unless($request->isMethod('post'));
        $servicioPresupuesto= new presupuestoClass();
        $arrayParametros= array (

            "cliente"=>$request->getParameter("clienteprod"),
            "producto"=>$request->getParameter("producto"),
            "campana"=>$request->getParameter("campana"),
            "presupuesto"=>$request->getParameter("numeropre"),
            "numeroOrden"=>$request->getParameter("numeroOrden"),
            "mes"=>$request->getParameter("mes"),
            "moneda"=>$request->getParameter("moneda"),
            "tipoCambio"=>$request->getParameter("tipoCambio"),

        );

        $respuesta=$servicioPresupuesto->grabar($arrayParametros);

        if($respuesta['success'])
        {
            $this->getUser()->setFlash('sf_mensajePresupuesto', true);
        }
        else
        {
            $this->getUser()->setFlash('sf_mensajePresupuesto', $respuesta);
        }

        $this->redirect('@presupuesto');

    }
    
    
   public function executeEditarPresupuesto(sfWebRequest $request)
   {
        $this->forward404Unless($request->isMethod('post'));
        $servicioPresupuesto = new presupuestoClass();
        $arrayParametros     = array(
        "idPresupuesto"=>$request->getParameter("idPresupuesto"),
        "cliente"=>$request->getParameter("clienteprod"),
        "producto"=>$request->getParameter("producto"),
        "campana"=>$request->getParameter("campana"),
        "presupuesto"=>$request->getParameter("numeropre"),
        "numeroOrden"=>$request->getParameter("numeroOrden"),
        "mes"=>$request->getParameter("mes"),
        "moneda"=>$request->getParameter("moneda"),
        "tipoCambio"=>$request->getParameter("tipoCambio")
        );

        $respuesta= $servicioPresupuesto->editarPresupuesto($arrayParametros);
        if($respuesta['success'])
        {
           $this->getUser()->setFlash('sf_mensajePrespuesto', true);
        }
        else
        {
           $this->getUser()->setFlash('sf_mensajePrespuesto', $respuesta);
        }
        $this->redirect('@viewPresupuesto?idPresupuesto='.$request->getParameter('numeropre'));

   }
   
   
   public function executeVersionarPresupuesto(sfWebRequest $request)
   {
        $this->forward404Unless($request->isMethod('post'));
        $servicioPresupuesto = new presupuestoClass();
        $arrayParametros     = array(
        "idPresupuesto"=>$request->getParameter("idPresupuesto"),
        "cliente"=>$request->getParameter("clienteprod"),
        "producto"=>$request->getParameter("producto"),
        "campana"=>$request->getParameter("campana"),
        "presupuesto"=>$request->getParameter("numeropre"),
        "numeroOrden"=>$request->getParameter("numeroOrden"),
        "mes"=>$request->getParameter("mes"),
        "moneda"=>$request->getParameter("moneda"),
        "tipoCambio"=>$request->getParameter("tipoCambio")
        );

        $respuesta= $servicioPresupuesto->versionarPresupuesto($arrayParametros);
        if($respuesta['success'])
        {
           $this->getUser()->setFlash('sf_mensajePrespuesto', true);
        }
        else
        {
           $this->getUser()->setFlash('sf_mensajePrespuesto', $respuesta);
        }
        $this->redirect('@viewPresupuesto?idPresupuesto='.$request->getParameter('numeropre'));

   }
   
   
   
  

  public function executeCargarProductosPresupuesto(sfWebRequest $request)
  {
      $idCliente = $request->getParameter('idCampana');
      $criteria  =  new Criteria();
      $criteria->add(ProductoPeer::CLIENTE_ID,$idCliente);
      $criteria->add(ProductoPeer::ESTADO,1);
      $listaProductos = ProductoPeer::doSelect($criteria);
      $this->lista = $listaProductos;

  }
  

  public function executeCargarComisiones(sfWebRequest $request)
  {

      $request->setRequestFormat('json');
      $idProducto=$request->getParameter('idProducto');
      $criteria = new Criteria();
      $criteria->add(ProductoPeer::ID,$idProducto);
      $producto = ProductoPeer::doSelectOne($criteria);
      $this->respuesta=true;
      $this->comisiontradicional=$producto->getComisionTradicional();
      $this->comisionautogestionable=$producto->getComisionAutogestionable();

  }

  //Funcion para cargar los Id de los productos para generar el numero presupuesto
  public function executeCargarId(sfWebRequest $request)
  {
      $request->setRequestFormat('json');

        //Llamo al metodo de autogenerar
      $idProducto=$request->getParameter("idProducto");
      $numeroPresupuesto=$request->getParameter('numeroPresupuesto');


      $servicioPresupuesto = new presupuestoClass();
      $nuevoCodigo=$servicioPresupuesto->generarNumeroPresupuesto($idProducto);
      $this->respuesta=true;
      $this->codigoProducto= $nuevoCodigo;
      //concateno el idagencia, Codigo del producto y el numero autogenerado del presupuesto

  }



   public function executeCargarCampanas(sfWebRequest $request)
  {
        $idProducto= $request->getParameter("idProducto");

        $criteria= new Criteria();
        $criteria->add(CampanaPeer::ID_PRODUCTO,$idProducto);
        $criteria->add(CampanaPeer::ESTADO,1);
        $criteria->add(CampanaPeer::FECHA2,date('Y-m-d'),Criteria::GREATER_EQUAL);
        $listarCampanas=CampanaPeer::doSelect($criteria);
        $this->listacampana= $listarCampanas;

    }

     public function executeBuscarContrato(sfWebRequest $request)
     {
            $servicioPresupuesto = new presupuestoClass();
            $productoId = $request->getParameter('productoId');
            $proveedorId = $request->getParameter('proovedorId');
            $this->listaContratos =$servicioPresupuesto->buscarContrato($productoId, $proveedorId);
     }
     
     public function executeBuscarMedio(sfWebRequest $request)
     {
            $servicioPresupuesto = new presupuestoClass();
            $proveedorId = $request->getParameter('proovedorId');
            $this->listaMedios =$servicioPresupuesto->buscarMedio($proveedorId);
     }
     
     
     
     public function executeAgregarDetalleFormatoPublicitario(sfWebRequest $request)
     {
         $nombreSession       = "s_detalleFormatoPublicitario";   
         $servicioPresupuesto = new presupuestoClass();
         $arrayParametro     = 
         array(
                "proveedorId"    => $request->getParameter("cboProovedor"),
                "contratoId"     => $request->getParameter("cboContrato"),
                "saldo"      => $request->getParameter("saldo"),
                "medioId"    => $request->getParameter("cboMedios"),
                "formato"    => $request->getParameter("formato"),
                "tipoCompraId"    => $request->getParameter("cboTipoCompra"),
                "fechaInicio"     => $request->getParameter("datepickerInicio"),
                "fechaFin"    => $request->getParameter("datepickerFin"),
                "inventario"  => $request->getParameter("inventario"),
                "costoCmp"    => $request->getParameter("costoCmp"),
                "cpc"         => $request->getParameter("cpc"),
                "descuentoAgencia"    => $request->getParameter("descuentoAgencia"),
                "total"               => $request->getParameter("total"),
                "costoAdverser"       => $request->getParameter("costoAdverser"),
                "totalAdverser"       => $request->getParameter("totalAdverser"),
                "liquidacion"         => $request->getParameter("liquidacion"),
                "comisionPorcentaje"  => $request->getParameter("comisionPorcentaje"),
                "totalComision"       => $request->getParameter("totalComision"),
                "costoTotal"          => $request->getParameter("costoTotal")
        );
        $servicioPresupuesto->agregarDetalleFormatoPublicitario($nombreSession, $arrayParametro);
        $this->parametros = $arrayParametro; 
     }
    



}
